<!DOCTYPE html>
<html lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>fit_rectangle2_contour_xld [HALCON算子参考手册]</title>
<style type="text/css">
      body {
    color: #000000;
    background-color: #ffffff;
    margin: 0;
    font-family: Arial, Helvetica, sans-serif;
}

.body_main {
    margin-left: 35px;
    margin-right: 35px;
}

@media screen and (min-width:992px) {

    .body_main {
        margin-left: 10%;
        margin-right: 10%;
    }

    table.toctable {
        width: 80%
    }
}

@media screen and (min-width:1400px) {

    .body_main {
        margin-left: 15%;
        margin-right: 15%;
    }

    table.toctable {
        width: 70%
    }
}

body>div ul ul {
    margin-left: inherit;
}

a:link {
    color: #0044cc;
}

a:link,
a:visited {
    text-decoration: none;
}

a:link:hover,
a:visited:hover {
    text-decoration: underline;
}

th {
    text-align: left;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    text-rendering: optimizeLegibility;
    color: #666666;
}

code {
    font-family: monospace,monospace;
}

h1 a.halconoperator {
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}

h2 a.halconoperator {
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}

hr {
    border: 0;
    border-top: solid 1px #f28d26;
}

.pre {
    display: block;
    padding-bottom: 1ex;
    font-family: monospace;
    white-space: pre;
}

pre {
    font-family: monospace, monospace;
    padding: 1ex;
    white-space: pre-wrap;
}

.toc {
    font-size: 80%;
    border-top: 1px dashed #f28d26;
    border-bottom: 1px dashed #f28d26;
    padding-top: 5px;
    padding-bottom: 5px;
}

.inv {
    margin: 0;
    border: 0;
    padding: 0;
}

.banner {
    color: #666666;
    padding-left: 1em;
}

.logo {
    background-color: white;
}

.keyboard {
    font-size: 80%;
    padding-left: 3px;
    padding-right: 3px;
    border-radius: 5px;
    border-width: 1px;
    border-style: solid;
    border-color: #f28d26;
    background-color: #f3f3f3;
}

.warning {
    margin-top: 2ex;
    margin-bottom: 1ex;
    padding: 10px;
    text-align: center;
    border: 1px solid;
    color: #bb0000;
    background-color: #fff7f7
}

.imprint {
    margin-top: 1ex;
    font-size: 80%;
    color: #666666;
}

.imprinthead {
    font-weight: bolder;
    color: #666666;
}

.indexlink {
    text-align: right;
    padding-bottom: 5px;
}

.postscript {
    margin-top: 2ex;
    font-size: 80%;
    color: #666666
}

.evenrow {
    background-color: #e7e7ef;
    vertical-align: top;
}

.oddrow {
    background-color: #f7f7ff;
    vertical-align: top;
}

.headrow {
    background-color: #97979f;
    color: #ffffff;
    vertical-align: top;
}

.logorow {
    vertical-align: top;
}

.error {
    color: red;
}

.var {
    font-style: italic
}

.halconoperator {
    font-family: monospace, monospace;
}

span.operator {
    font-family: monospace, monospace;
}

span.procedure {
    font-family: monospace, monospace;
}

span.operation {
    font-family: monospace, monospace;
}

span.feature {
    font-family: Arial, Helvetica, Homerton, sans-serif;
}

ul {
    padding-left: 1.2em;
}

li.dot {
    list-style-type: square;
    color: #f28d26;
}

.breadcrumb {
    font-size: 80%;
    color: white;
    background-color: #062d64;
    margin-bottom: 20px;
    padding-left: 35px;
    padding-right: 35px;
    padding-bottom: 15px;
}

.webbar {
    font-size: 80%;
    background-color: #dddddd;
    margin-top: 0px;
    margin-left: -35px;
    margin-right: -35px;
    margin-bottom: 0px;
    padding-top: 5px;
    padding-left: 35px;
    padding-right: 35px;
    padding-bottom: 5px;
}

.footer {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    border-top: 1px dashed #f28d26;
    font-size: 80%;
    color: #666666;
    padding-bottom: 8px;
}

.footer .socialmedia a {
    padding-left: 7px;
}

.socialmedia {
    padding-top: 10px;
}

.copyright {
    margin-top: 19px;
}

.breadcrumb a {
    color: #ffffff;
    border-bottom: 1px solid white;
}

.breadcrumb a:link:hover,
.breadcrumb a:visited:hover {
    text-decoration: none;
    border-bottom: none;
}

.heading {
    margin-top: 1ex;
    font-size: 110%;
    font-weight: bold;
    color: #666666;
}

.text {
    color: black;
}

.example {
    font-size: 80%;
    background-color: #f3f3f3;
    border: 1px dashed #666666;
    padding: 10px;
}

.displaymath {
    display: block;
    text-align: center;
    margin-top: 1ex;
    margin-bottom: 1ex;
}

.title {
    float: left;
    padding-top: 3px;
    padding-bottom: 3px;
}

.signnote {
    font-family: Arial, Helvetica, Homerton, sans-serif;
    font-size: 80%;
    color: #666666;
    font-weight: lighter;
    font-style: italic
}

.par {
    margin-bottom: 1.5em;
}

.parhead {
    text-align: right;
}

.parname {
    float: left;
}

.pardesc {
    font-size: 85%;
    margin-top: 0.5em;
    margin-bottom: 0.5em;
    margin-left: 2em;
}

.parcat {
    color: #666;
    font-weight: bold;
}

*[data-if=cpp],
*[data-if=c],
*[data-if=dotnet],
*[data-if=com],
*[data-if=python] {
    display: none;
}

.tabbar {
    text-align: right;
    border-bottom: 1px solid #f28d26;
    margin-bottom: 0.5em;
}

ul.tabs {
    padding-top: 3px;
    padding-bottom: 3px;
    margin-top: 10px;
    margin-bottom: 0;
    font-size: 80%
}

ul.tabs li {
    padding-top: 3px;
    padding-bottom: 3px;
    display: inline;
    overflow: hidden;
    list-style-type: none;
    margin: 0;
    margin-left: 8px;
    border-top: 1px solid #666;
    border-left: 1px solid #666;
    border-right: 1px solid #666;
}

ul.tabs li.active {
    border-left: 1px solid #f28d26;
    border-right: 1px solid #f28d26;
    border-top: 1px solid #f28d26;
    border-bottom: 1px solid #fff;
}

ul.tabs li.inactive {
    background-color: #eee;
}

ul.tabs li a {
    padding-left: 5px;
    padding-right: 5px;
    color: #666;
}

ul.tabs li a:link:hover {
    text-decoration: none;
}

ul.tabs li.inactive a {
    color: #666;
}

ul.tabs li.active a {
    color: black;
}

dl.generic dd {
    margin-bottom: 1em;
}

.pari {
    color: olive;
}

.paro {
    color: maroon;
}

.comment {
    font-size: 80%;
    color: green;
    white-space: nowrap;
}

table.grid {
    border-collapse: collapse;
}

table.grid td {
    padding: 5px;
    border: 1px solid;
}

table.layout {
    border: 0px;
}

table.layout td {
    padding: 5px;
}

table.table {
    border-collapse: collapse;
}

table.table td {
    padding: 5px;
    border-left: 0px;
    border-right: 0px;
}

table.table tr:last-child {
    border-bottom: 1px solid;
}

table.table th {
    padding: 5px;
    border-top: 1px solid;
    border-bottom: 1px solid;
    border-left: 0px;
    border-right: 0px;
}

.details_summary {
    cursor: pointer;
}

table.toctable {
    width: 100%;
}

table.toctable col:first-child {
    width: 20%;
}

table.toctable col:nth-last-child(2) {
    width: 8%;
}

table.altcolored tr:nth-child(even) {
    background-color: #f3f3f3;
}

    </style>
<!--OP_REF_STYLE_END-->
<script>
    <!--
var active_lang='hdevelop';function switchVisibility(obj,active_lang,new_lang)
{var display_style='inline';
for(var i=0;i<obj.length;i++)
{if(obj.item(i).getAttribute('data-if')==new_lang)
{obj.item(i).style.display=display_style;}
if(obj.item(i).getAttribute('data-if')==active_lang)
{obj.item(i).style.display='none';}}
return;}
function toggleLanguage(new_lang,initial)
{if(active_lang!=new_lang)
{var lis=document.getElementsByTagName('li');for(var i=0;i<lis.length;i++)
{if(lis.item(i).id=='syn-'+new_lang)
{lis.item(i).className='active';}
else
{lis.item(i).className='inactive';}}
var divs=document.getElementsByTagName('div');var spans=document.getElementsByTagName('span');switchVisibility(divs,active_lang,new_lang);switchVisibility(spans,active_lang,new_lang);if(!initial)
{setCookie("halcon_reference_language",new_lang,null,null);}
active_lang=new_lang;}
return;}
function setCookie(name,value,domain,exp_offset,path,secure)
{localStorage.setItem(name,value);}
function getCookie(name)
{return localStorage.getItem(name);}
function initialize()
{var qs=location.href.split('?')[1];var qs_lang_raw=location.href.split('interface=')[1];var qs_lang;if(qs_lang_raw)
{qs_lang=qs_lang_raw.split('#')[0];}
var cookie_lang=getCookie("halcon_reference_language");var new_lang;if((qs_lang=="hdevelop")||(qs_lang=="dotnet")||(qs_lang=="python")||(qs_lang=="cpp")||(qs_lang=="c"))
{new_lang=qs_lang;setCookie("halcon_reference_language",new_lang,null,null);}
else if((cookie_lang=="hdevelop")||(cookie_lang=="dotnet")||(cookie_lang=="python")||(cookie_lang=="cpp")||(cookie_lang=="c"))
{new_lang=cookie_lang;}
else
{new_lang="hdevelop";}
toggleLanguage(new_lang,1);return;}
-->

  </script>
</head>
<body onload="initialize();">
<div class="breadcrumb">
<br class="inv"><a href="index.html">目录</a> / <a href="toc_xld.html">XLD</a> / <a href="toc_xld_features.html">特征</a><br class="inv">
</div>
<div class="body_main">
<div class="tabbar"><ul class="tabs">
<li id="syn-hdevelop" class="active"><a href="javascript:void(0);" onclick="toggleLanguage('hdevelop')" onfocus="blur()">HDevelop</a></li>
<li id="syn-dotnet" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('dotnet')" onfocus="blur()">.NET</a></li>
<li id="syn-python" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('python')" onfocus="blur()">Python</a></li>
<li id="syn-cpp" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('cpp')" onfocus="blur()">C++</a></li>
<li id="syn-c" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('c')" onfocus="blur()">C</a></li>
</ul></div>
<div class="indexlink">
<a href="index_classes.html"><span data-if="dotnet" style="display:none;">类别</span><span data-if="cpp" style="display:none;">类别</span></a><span data-if="dotnet" style="display:none;"> | </span><span data-if="cpp" style="display:none;"> | </span><a href="index_by_name.html">算子列表</a>
</div>
<!--OP_REF_HEADER_END-->
<h1 id="sec_name">
<span data-if="hdevelop" style="display:inline;">fit_rectangle2_contour_xld</span><span data-if="c" style="display:none;">fit_rectangle2_contour_xld</span><span data-if="cpp" style="display:none;">FitRectangle2ContourXld</span><span data-if="dotnet" style="display:none;">FitRectangle2ContourXld</span><span data-if="python" style="display:none;">fit_rectangle2_contour_xld</span> (算子名称)</h1>
<h2>名称</h2>
<p><code><span data-if="hdevelop" style="display:inline;">fit_rectangle2_contour_xld</span><span data-if="c" style="display:none;">fit_rectangle2_contour_xld</span><span data-if="cpp" style="display:none;">FitRectangle2ContourXld</span><span data-if="dotnet" style="display:none;">FitRectangle2ContourXld</span><span data-if="python" style="display:none;">fit_rectangle2_contour_xld</span></code> — Fit rectangles to XLD contours.</p>
<h2 id="sec_synopsis">参数签名</h2>
<div data-if="hdevelop" style="display:inline;">
<p>
<code><b>fit_rectangle2_contour_xld</b>(<a href="#Contours"><i>Contours</i></a> :  : <a href="#Algorithm"><i>Algorithm</i></a>, <a href="#MaxNumPoints"><i>MaxNumPoints</i></a>, <a href="#MaxClosureDist"><i>MaxClosureDist</i></a>, <a href="#ClippingEndPoints"><i>ClippingEndPoints</i></a>, <a href="#Iterations"><i>Iterations</i></a>, <a href="#ClippingFactor"><i>ClippingFactor</i></a> : <a href="#Row"><i>Row</i></a>, <a href="#Column"><i>Column</i></a>, <a href="#Phi"><i>Phi</i></a>, <a href="#Length1"><i>Length1</i></a>, <a href="#Length2"><i>Length2</i></a>, <a href="#PointOrder"><i>PointOrder</i></a>)</code></p>
</div>
<div data-if="c" style="display:none;">
<p>
<code>Herror <b>fit_rectangle2_contour_xld</b>(const Hobject <a href="#Contours"><i>Contours</i></a>, const char* <a href="#Algorithm"><i>Algorithm</i></a>, const Hlong <a href="#MaxNumPoints"><i>MaxNumPoints</i></a>, double <a href="#MaxClosureDist"><i>MaxClosureDist</i></a>, const Hlong <a href="#ClippingEndPoints"><i>ClippingEndPoints</i></a>, const Hlong <a href="#Iterations"><i>Iterations</i></a>, double <a href="#ClippingFactor"><i>ClippingFactor</i></a>, double* <a href="#Row"><i>Row</i></a>, double* <a href="#Column"><i>Column</i></a>, double* <a href="#Phi"><i>Phi</i></a>, double* <a href="#Length1"><i>Length1</i></a>, double* <a href="#Length2"><i>Length2</i></a>, char* <a href="#PointOrder"><i>PointOrder</i></a>)</code></p>
<p>
<code>Herror <b>T_fit_rectangle2_contour_xld</b>(const Hobject <a href="#Contours"><i>Contours</i></a>, const Htuple <a href="#Algorithm"><i>Algorithm</i></a>, const Htuple <a href="#MaxNumPoints"><i>MaxNumPoints</i></a>, const Htuple <a href="#MaxClosureDist"><i>MaxClosureDist</i></a>, const Htuple <a href="#ClippingEndPoints"><i>ClippingEndPoints</i></a>, const Htuple <a href="#Iterations"><i>Iterations</i></a>, const Htuple <a href="#ClippingFactor"><i>ClippingFactor</i></a>, Htuple* <a href="#Row"><i>Row</i></a>, Htuple* <a href="#Column"><i>Column</i></a>, Htuple* <a href="#Phi"><i>Phi</i></a>, Htuple* <a href="#Length1"><i>Length1</i></a>, Htuple* <a href="#Length2"><i>Length2</i></a>, Htuple* <a href="#PointOrder"><i>PointOrder</i></a>)</code></p>
</div>
<div data-if="cpp" style="display:none;">
<p>
<code>void <b>FitRectangle2ContourXld</b>(const HObject&amp; <a href="#Contours"><i>Contours</i></a>, const HTuple&amp; <a href="#Algorithm"><i>Algorithm</i></a>, const HTuple&amp; <a href="#MaxNumPoints"><i>MaxNumPoints</i></a>, const HTuple&amp; <a href="#MaxClosureDist"><i>MaxClosureDist</i></a>, const HTuple&amp; <a href="#ClippingEndPoints"><i>ClippingEndPoints</i></a>, const HTuple&amp; <a href="#Iterations"><i>Iterations</i></a>, const HTuple&amp; <a href="#ClippingFactor"><i>ClippingFactor</i></a>, HTuple* <a href="#Row"><i>Row</i></a>, HTuple* <a href="#Column"><i>Column</i></a>, HTuple* <a href="#Phi"><i>Phi</i></a>, HTuple* <a href="#Length1"><i>Length1</i></a>, HTuple* <a href="#Length2"><i>Length2</i></a>, HTuple* <a href="#PointOrder"><i>PointOrder</i></a>)</code></p>
<p>
<code>void <a href="HXLDCont.html">HXLDCont</a>::<b>FitRectangle2ContourXld</b>(const HString&amp; <a href="#Algorithm"><i>Algorithm</i></a>, Hlong <a href="#MaxNumPoints"><i>MaxNumPoints</i></a>, double <a href="#MaxClosureDist"><i>MaxClosureDist</i></a>, Hlong <a href="#ClippingEndPoints"><i>ClippingEndPoints</i></a>, Hlong <a href="#Iterations"><i>Iterations</i></a>, double <a href="#ClippingFactor"><i>ClippingFactor</i></a>, HTuple* <a href="#Row"><i>Row</i></a>, HTuple* <a href="#Column"><i>Column</i></a>, HTuple* <a href="#Phi"><i>Phi</i></a>, HTuple* <a href="#Length1"><i>Length1</i></a>, HTuple* <a href="#Length2"><i>Length2</i></a>, HTuple* <a href="#PointOrder"><i>PointOrder</i></a>) const</code></p>
<p>
<code>void <a href="HXLDCont.html">HXLDCont</a>::<b>FitRectangle2ContourXld</b>(const HString&amp; <a href="#Algorithm"><i>Algorithm</i></a>, Hlong <a href="#MaxNumPoints"><i>MaxNumPoints</i></a>, double <a href="#MaxClosureDist"><i>MaxClosureDist</i></a>, Hlong <a href="#ClippingEndPoints"><i>ClippingEndPoints</i></a>, Hlong <a href="#Iterations"><i>Iterations</i></a>, double <a href="#ClippingFactor"><i>ClippingFactor</i></a>, double* <a href="#Row"><i>Row</i></a>, double* <a href="#Column"><i>Column</i></a>, double* <a href="#Phi"><i>Phi</i></a>, double* <a href="#Length1"><i>Length1</i></a>, double* <a href="#Length2"><i>Length2</i></a>, HString* <a href="#PointOrder"><i>PointOrder</i></a>) const</code></p>
<p>
<code>void <a href="HXLDCont.html">HXLDCont</a>::<b>FitRectangle2ContourXld</b>(const char* <a href="#Algorithm"><i>Algorithm</i></a>, Hlong <a href="#MaxNumPoints"><i>MaxNumPoints</i></a>, double <a href="#MaxClosureDist"><i>MaxClosureDist</i></a>, Hlong <a href="#ClippingEndPoints"><i>ClippingEndPoints</i></a>, Hlong <a href="#Iterations"><i>Iterations</i></a>, double <a href="#ClippingFactor"><i>ClippingFactor</i></a>, double* <a href="#Row"><i>Row</i></a>, double* <a href="#Column"><i>Column</i></a>, double* <a href="#Phi"><i>Phi</i></a>, double* <a href="#Length1"><i>Length1</i></a>, double* <a href="#Length2"><i>Length2</i></a>, HString* <a href="#PointOrder"><i>PointOrder</i></a>) const</code></p>
<p>
<code>void <a href="HXLDCont.html">HXLDCont</a>::<b>FitRectangle2ContourXld</b>(const wchar_t* <a href="#Algorithm"><i>Algorithm</i></a>, Hlong <a href="#MaxNumPoints"><i>MaxNumPoints</i></a>, double <a href="#MaxClosureDist"><i>MaxClosureDist</i></a>, Hlong <a href="#ClippingEndPoints"><i>ClippingEndPoints</i></a>, Hlong <a href="#Iterations"><i>Iterations</i></a>, double <a href="#ClippingFactor"><i>ClippingFactor</i></a>, double* <a href="#Row"><i>Row</i></a>, double* <a href="#Column"><i>Column</i></a>, double* <a href="#Phi"><i>Phi</i></a>, double* <a href="#Length1"><i>Length1</i></a>, double* <a href="#Length2"><i>Length2</i></a>, HString* <a href="#PointOrder"><i>PointOrder</i></a>) const  <span class="signnote">
            (
            Windows only)
          </span></code></p>
</div>
<div data-if="com" style="display:none;"></div>
<div data-if="dotnet" style="display:none;">
<p>
<code>static void <a href="HOperatorSet.html">HOperatorSet</a>.<b>FitRectangle2ContourXld</b>(<a href="HObject.html">HObject</a> <a href="#Contours"><i>contours</i></a>, <a href="HTuple.html">HTuple</a> <a href="#Algorithm"><i>algorithm</i></a>, <a href="HTuple.html">HTuple</a> <a href="#MaxNumPoints"><i>maxNumPoints</i></a>, <a href="HTuple.html">HTuple</a> <a href="#MaxClosureDist"><i>maxClosureDist</i></a>, <a href="HTuple.html">HTuple</a> <a href="#ClippingEndPoints"><i>clippingEndPoints</i></a>, <a href="HTuple.html">HTuple</a> <a href="#Iterations"><i>iterations</i></a>, <a href="HTuple.html">HTuple</a> <a href="#ClippingFactor"><i>clippingFactor</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#Row"><i>row</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#Column"><i>column</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#Phi"><i>phi</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#Length1"><i>length1</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#Length2"><i>length2</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#PointOrder"><i>pointOrder</i></a>)</code></p>
<p>
<code>void <a href="HXLDCont.html">HXLDCont</a>.<b>FitRectangle2ContourXld</b>(string <a href="#Algorithm"><i>algorithm</i></a>, int <a href="#MaxNumPoints"><i>maxNumPoints</i></a>, double <a href="#MaxClosureDist"><i>maxClosureDist</i></a>, int <a href="#ClippingEndPoints"><i>clippingEndPoints</i></a>, int <a href="#Iterations"><i>iterations</i></a>, double <a href="#ClippingFactor"><i>clippingFactor</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#Row"><i>row</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#Column"><i>column</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#Phi"><i>phi</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#Length1"><i>length1</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#Length2"><i>length2</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#PointOrder"><i>pointOrder</i></a>)</code></p>
<p>
<code>void <a href="HXLDCont.html">HXLDCont</a>.<b>FitRectangle2ContourXld</b>(string <a href="#Algorithm"><i>algorithm</i></a>, int <a href="#MaxNumPoints"><i>maxNumPoints</i></a>, double <a href="#MaxClosureDist"><i>maxClosureDist</i></a>, int <a href="#ClippingEndPoints"><i>clippingEndPoints</i></a>, int <a href="#Iterations"><i>iterations</i></a>, double <a href="#ClippingFactor"><i>clippingFactor</i></a>, out double <a href="#Row"><i>row</i></a>, out double <a href="#Column"><i>column</i></a>, out double <a href="#Phi"><i>phi</i></a>, out double <a href="#Length1"><i>length1</i></a>, out double <a href="#Length2"><i>length2</i></a>, out string <a href="#PointOrder"><i>pointOrder</i></a>)</code></p>
</div>
<div data-if="python" style="display:none;">
<p>
<code>def <b>fit_rectangle2_contour_xld</b>(<a href="#Contours"><i>contours</i></a>: HObject, <a href="#Algorithm"><i>algorithm</i></a>: str, <a href="#MaxNumPoints"><i>max_num_points</i></a>: int, <a href="#MaxClosureDist"><i>max_closure_dist</i></a>: float, <a href="#ClippingEndPoints"><i>clipping_end_points</i></a>: int, <a href="#Iterations"><i>iterations</i></a>: int, <a href="#ClippingFactor"><i>clipping_factor</i></a>: float) -&gt; Tuple[Sequence[float], Sequence[float], Sequence[float], Sequence[float], Sequence[float], Sequence[str]]</code></p>
<p>
<code>def <b>fit_rectangle2_contour_xld_s</b>(<a href="#Contours"><i>contours</i></a>: HObject, <a href="#Algorithm"><i>algorithm</i></a>: str, <a href="#MaxNumPoints"><i>max_num_points</i></a>: int, <a href="#MaxClosureDist"><i>max_closure_dist</i></a>: float, <a href="#ClippingEndPoints"><i>clipping_end_points</i></a>: int, <a href="#Iterations"><i>iterations</i></a>: int, <a href="#ClippingFactor"><i>clipping_factor</i></a>: float) -&gt; Tuple[float, float, float, float, float, str]</code></p>
</div>
<h2 id="sec_description">描述</h2>
<p><code><span data-if="hdevelop" style="display:inline">fit_rectangle2_contour_xld</span><span data-if="c" style="display:none">fit_rectangle2_contour_xld</span><span data-if="cpp" style="display:none">FitRectangle2ContourXld</span><span data-if="com" style="display:none">FitRectangle2ContourXld</span><span data-if="dotnet" style="display:none">FitRectangle2ContourXld</span><span data-if="python" style="display:none">fit_rectangle2_contour_xld</span></code> fits rectangles to the
rectangular XLD contours given by <a href="#Contours"><i><code><span data-if="hdevelop" style="display:inline">Contours</span><span data-if="c" style="display:none">Contours</span><span data-if="cpp" style="display:none">Contours</span><span data-if="com" style="display:none">Contours</span><span data-if="dotnet" style="display:none">contours</span><span data-if="python" style="display:none">contours</span></code></i></a> and returns the
parameters of the rectangles in <a href="#Row"><i><code><span data-if="hdevelop" style="display:inline">Row</span><span data-if="c" style="display:none">Row</span><span data-if="cpp" style="display:none">Row</span><span data-if="com" style="display:none">Row</span><span data-if="dotnet" style="display:none">row</span><span data-if="python" style="display:none">row</span></code></i></a>, <a href="#Column"><i><code><span data-if="hdevelop" style="display:inline">Column</span><span data-if="c" style="display:none">Column</span><span data-if="cpp" style="display:none">Column</span><span data-if="com" style="display:none">Column</span><span data-if="dotnet" style="display:none">column</span><span data-if="python" style="display:none">column</span></code></i></a>
(center), <a href="#Phi"><i><code><span data-if="hdevelop" style="display:inline">Phi</span><span data-if="c" style="display:none">Phi</span><span data-if="cpp" style="display:none">Phi</span><span data-if="com" style="display:none">Phi</span><span data-if="dotnet" style="display:none">phi</span><span data-if="python" style="display:none">phi</span></code></i></a> (orientation), as well as <a href="#Length1"><i><code><span data-if="hdevelop" style="display:inline">Length1</span><span data-if="c" style="display:none">Length1</span><span data-if="cpp" style="display:none">Length1</span><span data-if="com" style="display:none">Length1</span><span data-if="dotnet" style="display:none">length1</span><span data-if="python" style="display:none">length_1</span></code></i></a>
and <a href="#Length2"><i><code><span data-if="hdevelop" style="display:inline">Length2</span><span data-if="c" style="display:none">Length2</span><span data-if="cpp" style="display:none">Length2</span><span data-if="com" style="display:none">Length2</span><span data-if="dotnet" style="display:none">length2</span><span data-if="python" style="display:none">length_2</span></code></i></a> (half edge lengths).  The angle <a href="#Phi"><i><code><span data-if="hdevelop" style="display:inline">Phi</span><span data-if="c" style="display:none">Phi</span><span data-if="cpp" style="display:none">Phi</span><span data-if="com" style="display:none">Phi</span><span data-if="dotnet" style="display:none">phi</span><span data-if="python" style="display:none">phi</span></code></i></a> is
returned in radians and specifies the angle between the horizontal
axis and the edge with the half length <a href="#Length1"><i><code><span data-if="hdevelop" style="display:inline">Length1</span><span data-if="c" style="display:none">Length1</span><span data-if="cpp" style="display:none">Length1</span><span data-if="com" style="display:none">Length1</span><span data-if="dotnet" style="display:none">length1</span><span data-if="python" style="display:none">length_1</span></code></i></a> in the
mathematically positive direction (counterclockwise).  In addition,
the point order of the contour is returned in <a href="#PointOrder"><i><code><span data-if="hdevelop" style="display:inline">PointOrder</span><span data-if="c" style="display:none">PointOrder</span><span data-if="cpp" style="display:none">PointOrder</span><span data-if="com" style="display:none">PointOrder</span><span data-if="dotnet" style="display:none">pointOrder</span><span data-if="python" style="display:none">point_order</span></code></i></a>.
<a href="#PointOrder"><i><code><span data-if="hdevelop" style="display:inline">PointOrder</span><span data-if="c" style="display:none">PointOrder</span><span data-if="cpp" style="display:none">PointOrder</span><span data-if="com" style="display:none">PointOrder</span><span data-if="dotnet" style="display:none">pointOrder</span><span data-if="python" style="display:none">point_order</span></code></i></a> = <i><span data-if="hdevelop" style="display:inline">'positive'</span><span data-if="c" style="display:none">"positive"</span><span data-if="cpp" style="display:none">"positive"</span><span data-if="com" style="display:none">"positive"</span><span data-if="dotnet" style="display:none">"positive"</span><span data-if="python" style="display:none">"positive"</span></i> means that the contour
is traversed in the mathematically positive direction
(counterclockwise).
</p>
<p>The algorithm used for the fitting of the rectangles can be selected
via <a href="#Algorithm"><i><code><span data-if="hdevelop" style="display:inline">Algorithm</span><span data-if="c" style="display:none">Algorithm</span><span data-if="cpp" style="display:none">Algorithm</span><span data-if="com" style="display:none">Algorithm</span><span data-if="dotnet" style="display:none">algorithm</span><span data-if="python" style="display:none">algorithm</span></code></i></a>:
</p>
<dl class="generic">

<dt><b><i><span data-if="hdevelop" style="display:inline">'regression'</span><span data-if="c" style="display:none">"regression"</span><span data-if="cpp" style="display:none">"regression"</span><span data-if="com" style="display:none">"regression"</span><span data-if="dotnet" style="display:none">"regression"</span><span data-if="python" style="display:none">"regression"</span></i></b></dt>
<dd>
<p>

Standard least-squares line fitting.
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'huber'</span><span data-if="c" style="display:none">"huber"</span><span data-if="cpp" style="display:none">"huber"</span><span data-if="com" style="display:none">"huber"</span><span data-if="dotnet" style="display:none">"huber"</span><span data-if="python" style="display:none">"huber"</span></i></b></dt>
<dd>
<p>

Weighted least-squares line fitting, where the impact of outliers
is decreased based on the approach of Huber (see below).
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'tukey'</span><span data-if="c" style="display:none">"tukey"</span><span data-if="cpp" style="display:none">"tukey"</span><span data-if="com" style="display:none">"tukey"</span><span data-if="dotnet" style="display:none">"tukey"</span><span data-if="python" style="display:none">"tukey"</span></i></b></dt>
<dd><p>

Weighted least-squares line fitting, where
outliers are ignored based on the approach of Tukey(see below).
</p></dd>
</dl>
<p>For <i><span data-if="hdevelop" style="display:inline">'huber'</span><span data-if="c" style="display:none">"huber"</span><span data-if="cpp" style="display:none">"huber"</span><span data-if="com" style="display:none">"huber"</span><span data-if="dotnet" style="display:none">"huber"</span><span data-if="python" style="display:none">"huber"</span></i> and <i><span data-if="hdevelop" style="display:inline">'tukey'</span><span data-if="c" style="display:none">"tukey"</span><span data-if="cpp" style="display:none">"tukey"</span><span data-if="com" style="display:none">"tukey"</span><span data-if="dotnet" style="display:none">"tukey"</span><span data-if="python" style="display:none">"tukey"</span></i>, a robust error statistics is used
to estimate the standard deviation of the distances of the contour points
from the approximating sides of the rectangle while ignoring outliers.  The
standard deviation is computed separately for each side of the rectangle to
allow the processing of rectangles whose sides are not exactly perpendicular
to each other.  The parameter <a href="#ClippingFactor"><i><code><span data-if="hdevelop" style="display:inline">ClippingFactor</span><span data-if="c" style="display:none">ClippingFactor</span><span data-if="cpp" style="display:none">ClippingFactor</span><span data-if="com" style="display:none">ClippingFactor</span><span data-if="dotnet" style="display:none">clippingFactor</span><span data-if="python" style="display:none">clipping_factor</span></code></i></a> (a scaling factor
relative to the standard deviation) controls the amount of outliers:
The smaller the value chosen for <a href="#ClippingFactor"><i><code><span data-if="hdevelop" style="display:inline">ClippingFactor</span><span data-if="c" style="display:none">ClippingFactor</span><span data-if="cpp" style="display:none">ClippingFactor</span><span data-if="com" style="display:none">ClippingFactor</span><span data-if="dotnet" style="display:none">clippingFactor</span><span data-if="python" style="display:none">clipping_factor</span></code></i></a> the more outliers
are detected.  The detection of outliers is iterated.  The parameter
<a href="#Iterations"><i><code><span data-if="hdevelop" style="display:inline">Iterations</span><span data-if="c" style="display:none">Iterations</span><span data-if="cpp" style="display:none">Iterations</span><span data-if="com" style="display:none">Iterations</span><span data-if="dotnet" style="display:none">iterations</span><span data-if="python" style="display:none">iterations</span></code></i></a> specifies the number of iterations.  For
<a href="#Algorithm"><i><code><span data-if="hdevelop" style="display:inline">Algorithm</span><span data-if="c" style="display:none">Algorithm</span><span data-if="cpp" style="display:none">Algorithm</span><span data-if="com" style="display:none">Algorithm</span><span data-if="dotnet" style="display:none">algorithm</span><span data-if="python" style="display:none">algorithm</span></code></i></a> = <i><span data-if="hdevelop" style="display:inline">'regression'</span><span data-if="c" style="display:none">"regression"</span><span data-if="cpp" style="display:none">"regression"</span><span data-if="com" style="display:none">"regression"</span><span data-if="dotnet" style="display:none">"regression"</span><span data-if="python" style="display:none">"regression"</span></i>, the values of the last two
parameters are ignored. Note that in the approach of Tukey (<i><span data-if="hdevelop" style="display:inline">'tukey'</span><span data-if="c" style="display:none">"tukey"</span><span data-if="cpp" style="display:none">"tukey"</span><span data-if="com" style="display:none">"tukey"</span><span data-if="dotnet" style="display:none">"tukey"</span><span data-if="python" style="display:none">"tukey"</span></i>),
the outliers are removed before performing the approximation and all other
points are weighted, whereas in the approach of Huber (<i><span data-if="hdevelop" style="display:inline">'huber'</span><span data-if="c" style="display:none">"huber"</span><span data-if="cpp" style="display:none">"huber"</span><span data-if="com" style="display:none">"huber"</span><span data-if="dotnet" style="display:none">"huber"</span><span data-if="python" style="display:none">"huber"</span></i>),
the outliers still have a small influence. Particularly, for outliers the
optimization is influenced linearly and for points with a smaller distance it
is influenced to the square. For the algebraic approach, all distances of the
points influence the optimization to the square and thus are not robust
against outliers. In practice, the approach of Tukey is recommended.
</p>
<p>To reduce the computational load, the fitting of rectangles can be
restricted to a subset of the contour points: If a value other than
<i>-1</i> is assigned to <a href="#MaxNumPoints"><i><code><span data-if="hdevelop" style="display:inline">MaxNumPoints</span><span data-if="c" style="display:none">MaxNumPoints</span><span data-if="cpp" style="display:none">MaxNumPoints</span><span data-if="com" style="display:none">MaxNumPoints</span><span data-if="dotnet" style="display:none">maxNumPoints</span><span data-if="python" style="display:none">max_num_points</span></code></i></a>, only up to
<a href="#MaxNumPoints"><i><code><span data-if="hdevelop" style="display:inline">MaxNumPoints</span><span data-if="c" style="display:none">MaxNumPoints</span><span data-if="cpp" style="display:none">MaxNumPoints</span><span data-if="com" style="display:none">MaxNumPoints</span><span data-if="dotnet" style="display:none">maxNumPoints</span><span data-if="python" style="display:none">max_num_points</span></code></i></a> points, uniformly distributed across the
contour, are used.
</p>
<p>Depending on the processing used to create <a href="#Contours"><i><code><span data-if="hdevelop" style="display:inline">Contours</span><span data-if="c" style="display:none">Contours</span><span data-if="cpp" style="display:none">Contours</span><span data-if="com" style="display:none">Contours</span><span data-if="dotnet" style="display:none">contours</span><span data-if="python" style="display:none">contours</span></code></i></a>, the
start and end points of a contour may contain positional errors.
Therefore, it is possible to exclude <a href="#ClippingEndPoints"><i><code><span data-if="hdevelop" style="display:inline">ClippingEndPoints</span><span data-if="c" style="display:none">ClippingEndPoints</span><span data-if="cpp" style="display:none">ClippingEndPoints</span><span data-if="com" style="display:none">ClippingEndPoints</span><span data-if="dotnet" style="display:none">clippingEndPoints</span><span data-if="python" style="display:none">clipping_end_points</span></code></i></a>
points at the beginning and at the end of a contour from the
rectangle fitting.
</p>
<p>Contours, for which the distance between their start points and
their end points is &lt;= <a href="#MaxClosureDist"><i><code><span data-if="hdevelop" style="display:inline">MaxClosureDist</span><span data-if="c" style="display:none">MaxClosureDist</span><span data-if="cpp" style="display:none">MaxClosureDist</span><span data-if="com" style="display:none">MaxClosureDist</span><span data-if="dotnet" style="display:none">maxClosureDist</span><span data-if="python" style="display:none">max_closure_dist</span></code></i></a> are
considered to be closed.  For closed contours, the end point of the
contour is not used for the rectangle fitting because it would
receive twice the weight of the remaining points in the fit.
</p>
<p>The fitting of the rectangle to the contour is based on finding the
correspondence between the contour points and the four sides of the
rectangle.  To enable a successful fit, there must be at least one
point that lies in the interior of the line segment that represents
the respective rectangle side, i.e., the point must not lie at the
ends of the line segment.  Because of this, at least eight contour
points are necessary to fit the rectangle.  A point is internally
assigned to the side of the rectangle to which it has the minimum
distance.  For this, the currently optimal rectangle parameters,
i.e., the parameters used for the current iteration step, are used
internally.  If no corresponding points are found for at least one
side of the rectangle, the rectangle parameters cannot be determined
uniquely.  In this case, the error 3266 is returned.  Because of
this, the caller of <code><span data-if="hdevelop" style="display:inline">fit_rectangle2_contour_xld</span><span data-if="c" style="display:none">fit_rectangle2_contour_xld</span><span data-if="cpp" style="display:none">FitRectangle2ContourXld</span><span data-if="com" style="display:none">FitRectangle2ContourXld</span><span data-if="dotnet" style="display:none">FitRectangle2ContourXld</span><span data-if="python" style="display:none">fit_rectangle2_contour_xld</span></code> must ensure
that the input contours sufficiently resemble a rectangle.  In
particular, none of the interior angles of the contour, if the
contour was approximated by four lines, should be smaller than 45
degrees or larger than 135 degrees.  Because of the assignment of
contour points to the closest side of the rectangle this would mean
that at least one side of the rectangle would have no corresponding
points.  Furthermore, <a href="#ClippingFactor"><i><code><span data-if="hdevelop" style="display:inline">ClippingFactor</span><span data-if="c" style="display:none">ClippingFactor</span><span data-if="cpp" style="display:none">ClippingFactor</span><span data-if="com" style="display:none">ClippingFactor</span><span data-if="dotnet" style="display:none">clippingFactor</span><span data-if="python" style="display:none">clipping_factor</span></code></i></a> should not be chosen
too small to avoid that the outlier suppression creates rectangle
sides without corresponding contour points.  This can only happen
for <a href="#Algorithm"><i><code><span data-if="hdevelop" style="display:inline">Algorithm</span><span data-if="c" style="display:none">Algorithm</span><span data-if="cpp" style="display:none">Algorithm</span><span data-if="com" style="display:none">Algorithm</span><span data-if="dotnet" style="display:none">algorithm</span><span data-if="python" style="display:none">algorithm</span></code></i></a> = <i><span data-if="hdevelop" style="display:inline">'tukey'</span><span data-if="c" style="display:none">"tukey"</span><span data-if="cpp" style="display:none">"tukey"</span><span data-if="com" style="display:none">"tukey"</span><span data-if="dotnet" style="display:none">"tukey"</span><span data-if="python" style="display:none">"tukey"</span></i>.  If the above
conditions are observed, <code><span data-if="hdevelop" style="display:inline">fit_rectangle2_contour_xld</span><span data-if="c" style="display:none">fit_rectangle2_contour_xld</span><span data-if="cpp" style="display:none">FitRectangle2ContourXld</span><span data-if="com" style="display:none">FitRectangle2ContourXld</span><span data-if="dotnet" style="display:none">FitRectangle2ContourXld</span><span data-if="python" style="display:none">fit_rectangle2_contour_xld</span></code> returns
highly accurate rectangle parameters.  If the outlier suppression
according to Tukey is used, <code><span data-if="hdevelop" style="display:inline">fit_rectangle2_contour_xld</span><span data-if="c" style="display:none">fit_rectangle2_contour_xld</span><span data-if="cpp" style="display:none">FitRectangle2ContourXld</span><span data-if="com" style="display:none">FitRectangle2ContourXld</span><span data-if="dotnet" style="display:none">FitRectangle2ContourXld</span><span data-if="python" style="display:none">fit_rectangle2_contour_xld</span></code> can
be used to robustly fit rectangles, e.g., to rectangular contours
with rounded corners.</p>
<h2 id="sec_execution">运行信息</h2>
<ul>
  <li>多线程类型:可重入(与非独占操作符并行运行)。</li>
<li>多线程作用域:全局(可以从任何线程调用)。</li>
  
    <li>在元组级别自动并行化。</li>
  
</ul>
<h2 id="sec_parameters">参数表</h2>
  <div class="par">
<div class="parhead">
<span id="Contours" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Contours</span><span data-if="c" style="display:none">Contours</span><span data-if="cpp" style="display:none">Contours</span><span data-if="com" style="display:none">Contours</span><span data-if="dotnet" style="display:none">contours</span><span data-if="python" style="display:none">contours</span></code></b> (input_object)  </span><span>xld_cont(-array) <code>→</code> <span data-if="hdevelop" style="display:inline">object</span><span data-if="dotnet" style="display:none"><a href="HXLDCont.html">HXLDCont</a></span><span data-if="python" style="display:none">HObject</span><span data-if="cpp" style="display:none"><a href="HXLDCont.html">HXLDCont</a></span><span data-if="c" style="display:none">Hobject</span></span>
</div>
<p class="pardesc">Input contours.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="Algorithm" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Algorithm</span><span data-if="c" style="display:none">Algorithm</span><span data-if="cpp" style="display:none">Algorithm</span><span data-if="com" style="display:none">Algorithm</span><span data-if="dotnet" style="display:none">algorithm</span><span data-if="python" style="display:none">algorithm</span></code></b> (input_control)  </span><span>string <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">str</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (string)</span><span data-if="dotnet" style="display:none"> (<i>string</i>)</span><span data-if="cpp" style="display:none"> (<i>HString</i>)</span><span data-if="c" style="display:none"> (<i>char*</i>)</span></span>
</div>
<p class="pardesc">Algorithm for fitting the rectangles.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>
    <span data-if="hdevelop" style="display:inline">'regression'</span>
    <span data-if="c" style="display:none">"regression"</span>
    <span data-if="cpp" style="display:none">"regression"</span>
    <span data-if="com" style="display:none">"regression"</span>
    <span data-if="dotnet" style="display:none">"regression"</span>
    <span data-if="python" style="display:none">"regression"</span>
</p>
<p class="pardesc"><span class="parcat">List of values:
      </span><span data-if="hdevelop" style="display:inline">'huber'</span><span data-if="c" style="display:none">"huber"</span><span data-if="cpp" style="display:none">"huber"</span><span data-if="com" style="display:none">"huber"</span><span data-if="dotnet" style="display:none">"huber"</span><span data-if="python" style="display:none">"huber"</span>, <span data-if="hdevelop" style="display:inline">'regression'</span><span data-if="c" style="display:none">"regression"</span><span data-if="cpp" style="display:none">"regression"</span><span data-if="com" style="display:none">"regression"</span><span data-if="dotnet" style="display:none">"regression"</span><span data-if="python" style="display:none">"regression"</span>, <span data-if="hdevelop" style="display:inline">'tukey'</span><span data-if="c" style="display:none">"tukey"</span><span data-if="cpp" style="display:none">"tukey"</span><span data-if="com" style="display:none">"tukey"</span><span data-if="dotnet" style="display:none">"tukey"</span><span data-if="python" style="display:none">"tukey"</span></p>
</div>
  <div class="par">
<div class="parhead">
<span id="MaxNumPoints" class="parname"><b><code><span data-if="hdevelop" style="display:inline">MaxNumPoints</span><span data-if="c" style="display:none">MaxNumPoints</span><span data-if="cpp" style="display:none">MaxNumPoints</span><span data-if="com" style="display:none">MaxNumPoints</span><span data-if="dotnet" style="display:none">maxNumPoints</span><span data-if="python" style="display:none">max_num_points</span></code></b> (input_control)  </span><span>integer <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">int</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (integer)</span><span data-if="dotnet" style="display:none"> (<i>int</i> / </span><span data-if="dotnet" style="display:none">long)</span><span data-if="cpp" style="display:none"> (<i>Hlong</i>)</span><span data-if="c" style="display:none"> (<i>Hlong</i>)</span></span>
</div>
<p class="pardesc">Maximum number of contour points used for the
computation (-1 for all points).</p>
<p class="pardesc"><span class="parcat">Default:
      </span>-1</p>
<p class="pardesc"><span class="parcat">Restriction:
      </span><code>MaxNumPoints == -1 || MaxNumPoints &gt;= 8</code></p>
</div>
  <div class="par">
<div class="parhead">
<span id="MaxClosureDist" class="parname"><b><code><span data-if="hdevelop" style="display:inline">MaxClosureDist</span><span data-if="c" style="display:none">MaxClosureDist</span><span data-if="cpp" style="display:none">MaxClosureDist</span><span data-if="com" style="display:none">MaxClosureDist</span><span data-if="dotnet" style="display:none">maxClosureDist</span><span data-if="python" style="display:none">max_closure_dist</span></code></b> (input_control)  </span><span>real <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">float</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">Maximum distance between the end points of a
contour to be considered as closed.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>0.0</p>
<p class="pardesc"><span class="parcat">Restriction:
      </span><code>MaxClosureDist &gt;= 0.0</code></p>
</div>
  <div class="par">
<div class="parhead">
<span id="ClippingEndPoints" class="parname"><b><code><span data-if="hdevelop" style="display:inline">ClippingEndPoints</span><span data-if="c" style="display:none">ClippingEndPoints</span><span data-if="cpp" style="display:none">ClippingEndPoints</span><span data-if="com" style="display:none">ClippingEndPoints</span><span data-if="dotnet" style="display:none">clippingEndPoints</span><span data-if="python" style="display:none">clipping_end_points</span></code></b> (input_control)  </span><span>integer <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">int</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (integer)</span><span data-if="dotnet" style="display:none"> (<i>int</i> / </span><span data-if="dotnet" style="display:none">long)</span><span data-if="cpp" style="display:none"> (<i>Hlong</i>)</span><span data-if="c" style="display:none"> (<i>Hlong</i>)</span></span>
</div>
<p class="pardesc">Number of points at the beginning and at the end of the
contours to be ignored for the fitting.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>0</p>
<p class="pardesc"><span class="parcat">Suggested values:
      </span>0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10</p>
<p class="pardesc"><span class="parcat">Restriction:
      </span><code>ClippingEndPoints &gt;= 0</code></p>
</div>
  <div class="par">
<div class="parhead">
<span id="Iterations" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Iterations</span><span data-if="c" style="display:none">Iterations</span><span data-if="cpp" style="display:none">Iterations</span><span data-if="com" style="display:none">Iterations</span><span data-if="dotnet" style="display:none">iterations</span><span data-if="python" style="display:none">iterations</span></code></b> (input_control)  </span><span>integer <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">int</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (integer)</span><span data-if="dotnet" style="display:none"> (<i>int</i> / </span><span data-if="dotnet" style="display:none">long)</span><span data-if="cpp" style="display:none"> (<i>Hlong</i>)</span><span data-if="c" style="display:none"> (<i>Hlong</i>)</span></span>
</div>
<p class="pardesc">Maximum number of iterations
(not used for <i><span data-if="hdevelop" style="display:inline">'regression'</span><span data-if="c" style="display:none">"regression"</span><span data-if="cpp" style="display:none">"regression"</span><span data-if="com" style="display:none">"regression"</span><span data-if="dotnet" style="display:none">"regression"</span><span data-if="python" style="display:none">"regression"</span></i>).</p>
<p class="pardesc"><span class="parcat">Default:
      </span>3</p>
<p class="pardesc"><span class="parcat">Restriction:
      </span><code>Iterations &gt;= 0</code></p>
</div>
  <div class="par">
<div class="parhead">
<span id="ClippingFactor" class="parname"><b><code><span data-if="hdevelop" style="display:inline">ClippingFactor</span><span data-if="c" style="display:none">ClippingFactor</span><span data-if="cpp" style="display:none">ClippingFactor</span><span data-if="com" style="display:none">ClippingFactor</span><span data-if="dotnet" style="display:none">clippingFactor</span><span data-if="python" style="display:none">clipping_factor</span></code></b> (input_control)  </span><span>real <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">float</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">Clipping factor for the elimination of outliers
(typical values: <i>1.0</i> for <i><span data-if="hdevelop" style="display:inline">'huber'</span><span data-if="c" style="display:none">"huber"</span><span data-if="cpp" style="display:none">"huber"</span><span data-if="com" style="display:none">"huber"</span><span data-if="dotnet" style="display:none">"huber"</span><span data-if="python" style="display:none">"huber"</span></i> and
<i>2.0</i> for <i><span data-if="hdevelop" style="display:inline">'tukey'</span><span data-if="c" style="display:none">"tukey"</span><span data-if="cpp" style="display:none">"tukey"</span><span data-if="com" style="display:none">"tukey"</span><span data-if="dotnet" style="display:none">"tukey"</span><span data-if="python" style="display:none">"tukey"</span></i>).</p>
<p class="pardesc"><span class="parcat">Default:
      </span>2.0</p>
<p class="pardesc"><span class="parcat">Suggested values:
      </span>1.0, 1.5, 2.0, 2.5, 3.0</p>
<p class="pardesc"><span class="parcat">Restriction:
      </span><code>ClippingFactor &gt; 0</code></p>
</div>
  <div class="par">
<div class="parhead">
<span id="Row" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Row</span><span data-if="c" style="display:none">Row</span><span data-if="cpp" style="display:none">Row</span><span data-if="com" style="display:none">Row</span><span data-if="dotnet" style="display:none">row</span><span data-if="python" style="display:none">row</span></code></b> (output_control)  </span><span>rectangle2.center.y(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[float]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">Row coordinate of the center of the rectangle.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="Column" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Column</span><span data-if="c" style="display:none">Column</span><span data-if="cpp" style="display:none">Column</span><span data-if="com" style="display:none">Column</span><span data-if="dotnet" style="display:none">column</span><span data-if="python" style="display:none">column</span></code></b> (output_control)  </span><span>rectangle2.center.x(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[float]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">Column coordinate of the center of the rectangle.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="Phi" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Phi</span><span data-if="c" style="display:none">Phi</span><span data-if="cpp" style="display:none">Phi</span><span data-if="com" style="display:none">Phi</span><span data-if="dotnet" style="display:none">phi</span><span data-if="python" style="display:none">phi</span></code></b> (output_control)  </span><span>rectangle2.angle.rad(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[float]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">Orientation of the main axis of the rectangle [rad].</p>
</div>
  <div class="par">
<div class="parhead">
<span id="Length1" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Length1</span><span data-if="c" style="display:none">Length1</span><span data-if="cpp" style="display:none">Length1</span><span data-if="com" style="display:none">Length1</span><span data-if="dotnet" style="display:none">length1</span><span data-if="python" style="display:none">length_1</span></code></b> (output_control)  </span><span>rectangle2.hwidth(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[float]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">First radius (half length) of the rectangle.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="Length2" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Length2</span><span data-if="c" style="display:none">Length2</span><span data-if="cpp" style="display:none">Length2</span><span data-if="com" style="display:none">Length2</span><span data-if="dotnet" style="display:none">length2</span><span data-if="python" style="display:none">length_2</span></code></b> (output_control)  </span><span>rectangle2.hheight(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[float]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">Second radius (half width) of the rectangle.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="PointOrder" class="parname"><b><code><span data-if="hdevelop" style="display:inline">PointOrder</span><span data-if="c" style="display:none">PointOrder</span><span data-if="cpp" style="display:none">PointOrder</span><span data-if="com" style="display:none">PointOrder</span><span data-if="dotnet" style="display:none">pointOrder</span><span data-if="python" style="display:none">point_order</span></code></b> (output_control)  </span><span>string(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[str]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (string)</span><span data-if="dotnet" style="display:none"> (<i>string</i>)</span><span data-if="cpp" style="display:none"> (<i>HString</i>)</span><span data-if="c" style="display:none"> (<i>char*</i>)</span></span>
</div>
<p class="pardesc">Point order of the contour.</p>
<p class="pardesc"><span class="parcat">List of values:
      </span><span data-if="hdevelop" style="display:inline">'negative'</span><span data-if="c" style="display:none">"negative"</span><span data-if="cpp" style="display:none">"negative"</span><span data-if="com" style="display:none">"negative"</span><span data-if="dotnet" style="display:none">"negative"</span><span data-if="python" style="display:none">"negative"</span>, <span data-if="hdevelop" style="display:inline">'positive'</span><span data-if="c" style="display:none">"positive"</span><span data-if="cpp" style="display:none">"positive"</span><span data-if="com" style="display:none">"positive"</span><span data-if="dotnet" style="display:none">"positive"</span><span data-if="python" style="display:none">"positive"</span></p>
</div>
<h2 id="sec_result">结果</h2>
<p><code><span data-if="hdevelop" style="display:inline">fit_rectangle2_contour_xld</span><span data-if="c" style="display:none">fit_rectangle2_contour_xld</span><span data-if="cpp" style="display:none">FitRectangle2ContourXld</span><span data-if="com" style="display:none">FitRectangle2ContourXld</span><span data-if="dotnet" style="display:none">FitRectangle2ContourXld</span><span data-if="python" style="display:none">fit_rectangle2_contour_xld</span></code> returns <TT>2</TT> (
      <TT>H_MSG_TRUE</TT>)
     if all parameter
values are correct, and rectangles could be fitted to the input
contours.  If the input is empty the behavior can be set via
<a href="set_system.html"><code><span data-if="hdevelop" style="display:inline">set_system('no_object_result',&lt;Result&gt;)</span><span data-if="c" style="display:none">set_system("no_object_result",&lt;Result&gt;)</span><span data-if="cpp" style="display:none">SetSystem("no_object_result",&lt;Result&gt;)</span><span data-if="com" style="display:none">SetSystem("no_object_result",&lt;Result&gt;)</span><span data-if="dotnet" style="display:none">SetSystem("no_object_result",&lt;Result&gt;)</span><span data-if="python" style="display:none">set_system("no_object_result",&lt;Result&gt;)</span></code></a>.  If necessary, an
exception is raised.  If the parameter <a href="#ClippingFactor"><i><code><span data-if="hdevelop" style="display:inline">ClippingFactor</span><span data-if="c" style="display:none">ClippingFactor</span><span data-if="cpp" style="display:none">ClippingFactor</span><span data-if="com" style="display:none">ClippingFactor</span><span data-if="dotnet" style="display:none">clippingFactor</span><span data-if="python" style="display:none">clipping_factor</span></code></i></a> is
chosen too small, i.e., all points are classified as outliers, the
error 3266 is raised.  If no points could be found for at least one
side of the rectangle, the error 3266 is raised as well.</p>
<h2 id="sec_predecessors">可能的前置算子</h2>
<p>
<code><a href="gen_contours_skeleton_xld.html"><span data-if="hdevelop" style="display:inline">gen_contours_skeleton_xld</span><span data-if="c" style="display:none">gen_contours_skeleton_xld</span><span data-if="cpp" style="display:none">GenContoursSkeletonXld</span><span data-if="com" style="display:none">GenContoursSkeletonXld</span><span data-if="dotnet" style="display:none">GenContoursSkeletonXld</span><span data-if="python" style="display:none">gen_contours_skeleton_xld</span></a></code>, 
<code><a href="lines_gauss.html"><span data-if="hdevelop" style="display:inline">lines_gauss</span><span data-if="c" style="display:none">lines_gauss</span><span data-if="cpp" style="display:none">LinesGauss</span><span data-if="com" style="display:none">LinesGauss</span><span data-if="dotnet" style="display:none">LinesGauss</span><span data-if="python" style="display:none">lines_gauss</span></a></code>, 
<code><a href="lines_facet.html"><span data-if="hdevelop" style="display:inline">lines_facet</span><span data-if="c" style="display:none">lines_facet</span><span data-if="cpp" style="display:none">LinesFacet</span><span data-if="com" style="display:none">LinesFacet</span><span data-if="dotnet" style="display:none">LinesFacet</span><span data-if="python" style="display:none">lines_facet</span></a></code>, 
<code><a href="edges_sub_pix.html"><span data-if="hdevelop" style="display:inline">edges_sub_pix</span><span data-if="c" style="display:none">edges_sub_pix</span><span data-if="cpp" style="display:none">EdgesSubPix</span><span data-if="com" style="display:none">EdgesSubPix</span><span data-if="dotnet" style="display:none">EdgesSubPix</span><span data-if="python" style="display:none">edges_sub_pix</span></a></code>, 
<code><a href="smooth_contours_xld.html"><span data-if="hdevelop" style="display:inline">smooth_contours_xld</span><span data-if="c" style="display:none">smooth_contours_xld</span><span data-if="cpp" style="display:none">SmoothContoursXld</span><span data-if="com" style="display:none">SmoothContoursXld</span><span data-if="dotnet" style="display:none">SmoothContoursXld</span><span data-if="python" style="display:none">smooth_contours_xld</span></a></code>, 
<code><a href="union_collinear_contours_xld.html"><span data-if="hdevelop" style="display:inline">union_collinear_contours_xld</span><span data-if="c" style="display:none">union_collinear_contours_xld</span><span data-if="cpp" style="display:none">UnionCollinearContoursXld</span><span data-if="com" style="display:none">UnionCollinearContoursXld</span><span data-if="dotnet" style="display:none">UnionCollinearContoursXld</span><span data-if="python" style="display:none">union_collinear_contours_xld</span></a></code>, 
<code><a href="union_collinear_contours_ext_xld.html"><span data-if="hdevelop" style="display:inline">union_collinear_contours_ext_xld</span><span data-if="c" style="display:none">union_collinear_contours_ext_xld</span><span data-if="cpp" style="display:none">UnionCollinearContoursExtXld</span><span data-if="com" style="display:none">UnionCollinearContoursExtXld</span><span data-if="dotnet" style="display:none">UnionCollinearContoursExtXld</span><span data-if="python" style="display:none">union_collinear_contours_ext_xld</span></a></code>, 
<code><a href="union_adjacent_contours_xld.html"><span data-if="hdevelop" style="display:inline">union_adjacent_contours_xld</span><span data-if="c" style="display:none">union_adjacent_contours_xld</span><span data-if="cpp" style="display:none">UnionAdjacentContoursXld</span><span data-if="com" style="display:none">UnionAdjacentContoursXld</span><span data-if="dotnet" style="display:none">UnionAdjacentContoursXld</span><span data-if="python" style="display:none">union_adjacent_contours_xld</span></a></code>
</p>
<h2 id="sec_successors">可能的后置算子</h2>
<p>
<code><a href="dist_rectangle2_contour_points_xld.html"><span data-if="hdevelop" style="display:inline">dist_rectangle2_contour_points_xld</span><span data-if="c" style="display:none">dist_rectangle2_contour_points_xld</span><span data-if="cpp" style="display:none">DistRectangle2ContourPointsXld</span><span data-if="com" style="display:none">DistRectangle2ContourPointsXld</span><span data-if="dotnet" style="display:none">DistRectangle2ContourPointsXld</span><span data-if="python" style="display:none">dist_rectangle2_contour_points_xld</span></a></code>, 
<code><a href="gen_rectangle2_contour_xld.html"><span data-if="hdevelop" style="display:inline">gen_rectangle2_contour_xld</span><span data-if="c" style="display:none">gen_rectangle2_contour_xld</span><span data-if="cpp" style="display:none">GenRectangle2ContourXld</span><span data-if="com" style="display:none">GenRectangle2ContourXld</span><span data-if="dotnet" style="display:none">GenRectangle2ContourXld</span><span data-if="python" style="display:none">gen_rectangle2_contour_xld</span></a></code>
</p>
<h2 id="sec_alternatives">可替代算子</h2>
<p>
<code><a href="smallest_rectangle2_xld.html"><span data-if="hdevelop" style="display:inline">smallest_rectangle2_xld</span><span data-if="c" style="display:none">smallest_rectangle2_xld</span><span data-if="cpp" style="display:none">SmallestRectangle2Xld</span><span data-if="com" style="display:none">SmallestRectangle2Xld</span><span data-if="dotnet" style="display:none">SmallestRectangle2Xld</span><span data-if="python" style="display:none">smallest_rectangle2_xld</span></a></code>
</p>
<h2 id="sec_see">参考其它</h2>
<p>
<code><a href="fit_line_contour_xld.html"><span data-if="hdevelop" style="display:inline">fit_line_contour_xld</span><span data-if="c" style="display:none">fit_line_contour_xld</span><span data-if="cpp" style="display:none">FitLineContourXld</span><span data-if="com" style="display:none">FitLineContourXld</span><span data-if="dotnet" style="display:none">FitLineContourXld</span><span data-if="python" style="display:none">fit_line_contour_xld</span></a></code>, 
<code><a href="fit_circle_contour_xld.html"><span data-if="hdevelop" style="display:inline">fit_circle_contour_xld</span><span data-if="c" style="display:none">fit_circle_contour_xld</span><span data-if="cpp" style="display:none">FitCircleContourXld</span><span data-if="com" style="display:none">FitCircleContourXld</span><span data-if="dotnet" style="display:none">FitCircleContourXld</span><span data-if="python" style="display:none">fit_circle_contour_xld</span></a></code>, 
<code><a href="fit_ellipse_contour_xld.html"><span data-if="hdevelop" style="display:inline">fit_ellipse_contour_xld</span><span data-if="c" style="display:none">fit_ellipse_contour_xld</span><span data-if="cpp" style="display:none">FitEllipseContourXld</span><span data-if="com" style="display:none">FitEllipseContourXld</span><span data-if="dotnet" style="display:none">FitEllipseContourXld</span><span data-if="python" style="display:none">fit_ellipse_contour_xld</span></a></code>
</p>
<h2 id="sec_module">模块</h2>
<p>
Foundation</p>
<!--OP_REF_FOOTER_START-->
<hr>
<div class="indexlink">
<a href="index_classes.html"><span data-if="dotnet" style="display:none;">类别</span><span data-if="cpp" style="display:none;">类别</span></a><span data-if="dotnet" style="display:none;"> | </span><span data-if="cpp" style="display:none;"> | </span><a href="index_by_name.html">算子列表</a>
</div>
<div class="footer">
<div class="copyright">HALCON算子参考手册 Copyright © 2015-2023 51Halcon</div>
</div>
</div>
</body>
</html>
